1. Technical Field
The present invention relates in general to improved grid computing and in particular to constructing virtual node groupings to handle a grid job. Still more particularly, the present invention relates to providing automated building of a locally managed virtual node grouping to handle a grid job requiring a degree of resource parallelism for execution within a grid environment.
2. Description of the Related Art
Ever since the first connection was made between two computer systems, new ways of transferring data, resources, and other information between two computer systems via a connection continue to develop. In typical network architectures, when two computer systems are exchanging data via a connection, one of the computer systems is considered a client sending requests and the other is considered a server processing the requests and returning results. In an effort to increase the speed at which requests are handled, server systems continue to expand in size and speed. Further, in an effort to handle peak periods when multiple requests are arriving every second, server systems are often joined together as a group and requests are distributed among the grouped servers. Multiple methods of grouping servers have developed such as clustering, multi-system shared data (sysplex) environments, and enterprise systems. With a cluster of servers, one server is typically designated to manage distribution of incoming requests and outgoing responses. The other servers typically operate in parallel to handle the distributed requests from clients. Thus, one of multiple servers in a cluster may service a client request without the client detecting that a cluster of servers is processing the request.
Typically, servers or groups of servers operate on a particular network platform, such as Unix or some variation of Unix, and provide a hosting environment for running applications. Each network platform may provide functions ranging from database integration, clustering services, and security to workload management and problem determination. Each network platform typically offers different implementations, semantic behaviors, and application programming interfaces (APIs).
Merely grouping servers together to expand processing power, however, is a limited method of improving efficiency of response times in a network. Thus, increasingly, within a company network, rather than just grouping servers, servers and groups of server systems are organized as distributed resources. There is an increased effort to collaborate, share data, share cycles, and improve other modes of interaction among servers within a company network and outside the company network. Further, there is an increased effort to outsource nonessential elements from one company network to that of a service provider network. Moreover, there is a movement to coordinate resource sharing between resources that are not subject to the same management system, but still address issues of security, policy, payment, and membership. For example, resources on an individual's desktop are not typically subject to the same management system as resources of a company server cluster. Even different administrative groups within a company network may implement distinct management systems.
The problems with decentralizing the resources available from servers and other computing systems operating on different network platforms, located in different regions, with different security protocols and each controlled by a different management system, has led to the development of Grid technologies using open standards for operating a grid environment. Grid environments support the sharing and coordinated use of diverse resources in dynamic, distributed, virtual organizations. A virtual organization is created within a grid environment when a selection of resources, from geographically distributed systems operated by different organizations with differing policies and management systems, is organized to handle a job request.
While the open standards defining grid technology facilitate sharing and coordination of diverse resources in dynamic, distributed, virtual organizations, grid standards do not solve all of the problems associated with actually determining how to group resources into virtual organizations. This problem is further compounded when a grid job requires groups of resources that are dedicated to processing the grid job in parallel. In some cases, a system administrator may decide to build a group of grid resource nodes dedicated to highly parallel job processing, but dedicating a group of grid resource nodes to provide a particular degree of parallelism limits the use of those resources. In addition, even if a system administrator dedicates a group of resources to highly parallel job processing, that group of resources may be insufficient for the degree of parallelism required for processing a particular job, requiring the grid environment to send the grid job to an external grid environment to handle the grid job. Sending a grid job to an external grid environment with groupings of resource nodes is also limited because use of the external grid environment may be expensive and may not be appropriate or desirable depending on the confidentiality required for the grid job. Further, sending a grid job to an external grid environment with designated groupings of resource nodes is also limited because a company or organization may maintain a grid environment that when viewed as a whole includes sufficient resource nodes to provide the degree of parallelism, but current grid technology does not provide a mechanism for automatically grouping grid nodes from physically disparate locations within a company or organization to process jobs requiring a high degree of parallelism.
Therefore, in view of the foregoing, there is a need for a computer automated method, system, and program for creating virtual, temporary grid node groupings of sufficient capacity to provide the degree of parallelism required for a particular job. In particular, there is a need for a computer automated method, system, and program for creating cost effective virtual node groupings using locally available resources and external resources accessed from trusted grid vendors with local management within the company or organization controlling the grid environment.